home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / glass / glass.lha / GLASS / uflat2 / test15.gl < prev    next >
Text File  |  1991-06-18  |  520b  |  26 lines

  1. Basetype E;
  2.  
  3. Atom
  4.    not :- E => E,
  5.    nand2 :- E & E => E,
  6.    and3 :- E & E & E => E,
  7.    or4 :- E & E & E & E => E,
  8.    and2 :- E & E => E,
  9.    or3 :- E & E & E => E,
  10.    adc :- E & E & E => E & E;
  11.  
  12.  
  13. Mac
  14.    adder :- Int -: n -> E & E^n & E^n => E^n & E;
  15.    adder 0 [c, [],[]] = [[], c];
  16.    adder n [c, a:as, b:bs] = [s:ss, cout]
  17.       where
  18.          [s,v] = adc [a,b,c];
  19.          [ss, cout] = adder (n-1) [v, as, bs];
  20.       endwhere;
  21.  
  22. Def
  23.    adder4 :- E & E^4 & E^4 => E^4 & E;
  24.    adder4 [c, as,bs] = adder 4 [c, as,bs];
  25.  
  26.